<?php
/**
 * 验证是否整数
 */
class IntValidator extends AbstractValidator
{	
	/**
	 * 最大值
	 * @var integer
	 */
	public $max;
	/**
	 * 最小值
	 * @var integer
	 */
	public $min;
	/**
	 * 是否正整数
	 * $var boolean
	 */
	public $isPositive=false;
	/**
	 * 是否允许为空 
	 * @var boolean
	 */
	public $allowEmpty=true;
		
	/**
	 * 验证方法
	 * @param string $label  显示在页面的名称
	 * @param mix $value 要验证的值
	 */	
	public function validate($label,$value){
		if($this->allowEmpty && $this->isEmpty($value))
			return true;
		if(filter_var($value,FILTER_VALIDATE_INT)===false)
			return $this->message($label);
		if($this->isPositive!==false && $value<=0)
			return $this->messagePositive($label);
		if($this->min!==null && $value<$this->min)
			return $this->messageMin($label);
		if($this->max!==null && $value>$this->max)
			return $this->messageMax($label);
		return true;		
	}
	/**
	 * 验证失败的信息
	 * @param string $label
	 */
	public function message($label){		
		if($this->language==='cn'){
			return $label.'必须是整数';
		}
	}
	public function messagePositive($label){		
		if($this->language==='cn'){
			return $label.'必须是正整数';
		}
	}
	public function messageMin($label){		
		if($this->language==='cn'){
			return $label.'不能小于'.$this->min;
		}		
	}
	public function messageMax($label){		
		if($this->language==='cn'){
			return $label.'不能大于'.$this->max;
		}		
	}
}
